/**
 * @description: 单个数字前补零
 * @param {*} num  数字
 * @return {*} 补0后的数字
 */
function toDouble(num) {
  return (String(num)[1] && String(num)) || "0" + num;
}

/**
 * @description: 时间格式化
 * @param {*} data  日期对象
 * @param {*} format 需要格式化的时间
 * @return {*}  返回格式化后的时间
 */
function formDate(date = new Date(), format = "yyyy-MM-dd hh:mm:ss") {
    //设置字符对应关系
  const regMap = {
    'y': date.getFullYear(),
    'M': toDouble(date.getMonth() + 1),
    'd': toDouble(date.getDate()),
    'h': toDouble(date.getHours()),
    'm': toDouble(date.getMinutes()),
    's': toDouble(date.getSeconds()),
  };
  
  return Object.entries(regMap).reduce((acc, [key, value]) => {
    //设置正则匹配，将符合条件的值替换成相应格式
    return acc.replace(new RegExp(`${key}+`, "g"), value);
  }, format);
}

module.exports = {
    formDate,
    toDouble
}